package com.tulei.api.translate;


import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;

import com.tulei.api.translate.utils.AuthV3Util;
import com.tulei.api.translate.utils.HttpUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;

import java.nio.charset.StandardCharsets;
import java.security.NoSuchAlgorithmException;
import java.util.HashMap;
import java.util.Map;

/**
 * 网易有道智云翻译服务api调用demo
 * api接口: https://openapi.youdao.com/api
 */

@Component
@Slf4j
public class TranslateDemo {

    private static final String APP_KEY = "08a20eb3d74dc0e8";     // 您的应用ID
    private static final String APP_SECRET = "FuVvBSZ2nm7gBSt57TCwfbUpic7jZWC2";  // 您的应用密钥

//    public static void main(String[] args) throws NoSuchAlgorithmException {
//        // 添加请求参数
//        Map<String, String[]> params = createRequestParams();
//        // 添加鉴权相关参数
//        AuthV3Util.addAuthParams(APP_KEY, APP_SECRET, params);
//        // 请求api服务
//        byte[] result = HttpUtil.doPost("https://openapi.youdao.com/api", null, params, "application/json");
//        // 打印返回结果
//        if (result != null) {
//            String res = new String(result, StandardCharsets.UTF_8);
////            log.info("res:{}", res);
//            JSONObject jsonObject = JSONUtil.parseObj(res);
//            // 提取 "value" 对应的值
//            String transRes;
//            if(jsonObject.containsKey("web")){
//                transRes = jsonObject.getJSONArray("web").getJSONObject(0).getJSONArray("value").get(0).toString();
//            } else {
//                transRes = jsonObject.getJSONArray("translation").get(0).toString();
//            }
//            System.out.println(transRes);
//        }
//        System.exit(1);
//    }

    private static Map<String, String[]> createRequestParams(String text) {
        /*
         * note: 将下列变量替换为需要请求的参数
         * 取值参考文档: https://ai.youdao.com/DOCSIRMA/html/%E8%87%AA%E7%84%B6%E8%AF%AD%E8%A8%80%E7%BF%BB%E8%AF%91/API%E6%96%87%E6%A1%A3/%E6%96%87%E6%9C%AC%E7%BF%BB%E8%AF%91%E6%9C%8D%E5%8A%A1/%E6%96%87%E6%9C%AC%E7%BF%BB%E8%AF%91%E6%9C%8D%E5%8A%A1-API%E6%96%87%E6%A1%A3.html
         */

        String from = "auto";
        String to = "zh-CHS";
        String vocabId = "您的用户词表ID";

        return new HashMap<String, String[]>() {{
            put("q", new String[]{text});
            put("from", new String[]{from});
            put("to", new String[]{to});
            put("vocabId", new String[]{vocabId});
        }};
    }
    public static String translate(String text) throws NoSuchAlgorithmException {
        Map<String, String[]> params = createRequestParams(text);
        AuthV3Util.addAuthParams(APP_KEY, APP_SECRET, params);
        // 请求api服务
        byte[] result = HttpUtil.doPost("https://openapi.youdao.com/api", null, params, "application/json");
        // 打印返回结果
        if (result != null) {
            String res = new String(result, StandardCharsets.UTF_8);
//            log.info("res:{}", res);
            JSONObject jsonObject = JSONUtil.parseObj(res);
            // 提取 "value" 对应的值
            String transRes;
            if(jsonObject.containsKey("web")){
                transRes = jsonObject.getJSONArray("web").getJSONObject(0).getJSONArray("value").toString();
            } else {
                transRes = jsonObject.getJSONArray("translation").toString();
            }
            return transRes;
        }
        return null;
    }

    public static void main(String[] args) {
        try {
            System.out.println(translate("使用信息技术进行学习帮助他们节省了很多时间"));
        } catch (NoSuchAlgorithmException e) {
            throw new RuntimeException(e);
        }
    }
}
